package model;

import java.util.*;

public class Ficha {
	private Integer id = null;
	private String autor = null;
	private String titulo = null;
	private TipoLectura tipo = null;
	private ArrayList colDatos = null;

	public Ficha(String autor, String titulo){
		this.setAutor(autor);
		this.setTitulo(titulo);
	}
	
	public Ficha(){
		
	}

	public boolean hasId() {
		return (this.id != null);
	}

	public Integer getId() {
		return this.id;
	}

	public String getAutor() {
		return this.autor;
	}

	public void setAutor(String autor) {
		this.autor = autor;
	}

	public ArrayList getDatos() {
		return this.colDatos;
	}

	public void setDatos(ArrayList datos) {
		this.colDatos = datos;
	}
	
	public ArrayList addDato(Dato dato) {
		this.colDatos.add(dato);
		return this.colDatos;
	}

	public TipoLectura getTipo() {
		return this.tipo;
	}

	public void setTipo(TipoLectura tipo) {
		this.tipo = tipo;
	}

	public String getTitulo() {
		return this.titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	
//	elimina un elemento tipo dato de la coleccion
	public boolean dellDato(Dato d){
		boolean retorno = false;
		retorno = this.getDatos().remove(d);
		return retorno;
	}
	
	// elimina todo los elementos de la coleccion
	public ArrayList eliminoColDato(){
		this.getDatos().clear();
		return (this.getDatos());
	}
	
	// Devuelve un elemento tipo dato solicitado por su Id
	public Dato getDato(Integer id){
		Iterator i = this.getDatos().iterator();
		while(i.hasNext()){
			Dato unaD= (Dato)i.next();
			if (unaD.getId()== id) //se puede mejorar conun equals
				return unaD;
		}
		return null;
	}
	
	/*// Devuelve un elemento tipo dato solicitado por su Clave
	public Dato getDato(String clave){
		Iterator i = this.getDatos().iterator();
		while(i.hasNext()){
			Dato unaD= (Dato)i.next();
			if (unaD.getClave()== clave)//se puede mejorar conun equals
				return unaD;
		}
		return null;
	}*/
}
